
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module telemetry.core.android_action_runner</title>
<meta charset="utf-8">
</head><body bgcolor="#f0f0f8">

<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="telemetry.html"><font color="#ffffff">telemetry</font></a>.<a href="telemetry.core.html"><font color="#ffffff">core</font></a>.android_action_runner</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="../telemetry/core/android_action_runner.py">telemetry/core/android_action_runner.py</a></font></td></tr></table>
    <p><tt>#&nbsp;Copyright&nbsp;2015&nbsp;The&nbsp;Chromium&nbsp;Authors.&nbsp;All&nbsp;rights&nbsp;reserved.<br>
#&nbsp;Use&nbsp;of&nbsp;this&nbsp;source&nbsp;code&nbsp;is&nbsp;governed&nbsp;by&nbsp;a&nbsp;BSD-style&nbsp;license&nbsp;that&nbsp;can&nbsp;be<br>
#&nbsp;found&nbsp;in&nbsp;the&nbsp;LICENSE&nbsp;file.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
    
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="logging.html">logging</a><br>
</td><td width="25%" valign=top><a href="time.html">time</a><br>
</td><td width="25%" valign=top><a href="telemetry.core.util.html">telemetry.core.util</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
    
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="telemetry.core.android_action_runner.html#AndroidActionRunner">AndroidActionRunner</a>
</font></dt></dl>
</dd>
<dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="telemetry.core.android_action_runner.html#ActionNotSupported">ActionNotSupported</a>
</font></dt></dl>
</dd>
</dl>
 <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="ActionNotSupported">class <strong>ActionNotSupported</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr>
    
<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="telemetry.core.android_action_runner.html#ActionNotSupported">ActionNotSupported</a></dd>
<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
Data descriptors defined here:<br>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<hr>
Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
<dl><dt><a name="ActionNotSupported-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#ActionNotSupported-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;help(type(x))&nbsp;for&nbsp;signature</tt></dd></dl>

<hr>
Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#ActionNotSupported-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>

<hr>
Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
<dl><dt><a name="ActionNotSupported-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#ActionNotSupported-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>

<dl><dt><a name="ActionNotSupported-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#ActionNotSupported-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>

<dl><dt><a name="ActionNotSupported-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#ActionNotSupported-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>

<dl><dt><a name="ActionNotSupported-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#ActionNotSupported-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
&nbsp;<br>
Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>

<dl><dt><a name="ActionNotSupported-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>

<dl><dt><a name="ActionNotSupported-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#ActionNotSupported-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>

<dl><dt><a name="ActionNotSupported-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#ActionNotSupported-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>

<dl><dt><a name="ActionNotSupported-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>

<dl><dt><a name="ActionNotSupported-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#ActionNotSupported-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>

<dl><dt><a name="ActionNotSupported-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>

<hr>
Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
</dl>
<dl><dt><strong>args</strong></dt>
</dl>
<dl><dt><strong>message</strong></dt>
</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="AndroidActionRunner">class <strong>AndroidActionRunner</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>Provides&nbsp;an&nbsp;API&nbsp;for&nbsp;interacting&nbsp;with&nbsp;an&nbsp;android&nbsp;device.<br>
&nbsp;<br>
This&nbsp;makes&nbsp;use&nbsp;of&nbsp;functionality&nbsp;provided&nbsp;by&nbsp;the&nbsp;android&nbsp;input&nbsp;command.&nbsp;None<br>
of&nbsp;the&nbsp;gestures&nbsp;here&nbsp;are&nbsp;guaranteed&nbsp;to&nbsp;be&nbsp;performant&nbsp;for&nbsp;telemetry&nbsp;tests&nbsp;and<br>
there&nbsp;is&nbsp;no&nbsp;official&nbsp;support&nbsp;for&nbsp;this&nbsp;API.<br>
&nbsp;<br>
TODO(ariblue):&nbsp;Replace&nbsp;this&nbsp;API&nbsp;with&nbsp;a&nbsp;better&nbsp;implementation&nbsp;for&nbsp;interacting<br>
with&nbsp;native&nbsp;components.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="AndroidActionRunner-InputKeyEvent"><strong>InputKeyEvent</strong></a>(self, key)</dt><dd><tt>Send&nbsp;a&nbsp;single&nbsp;key&nbsp;input&nbsp;to&nbsp;the&nbsp;device.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;key:&nbsp;A&nbsp;key&nbsp;code&nbsp;number&nbsp;or&nbsp;name&nbsp;that&nbsp;will&nbsp;be&nbsp;sent&nbsp;to&nbsp;the&nbsp;device</tt></dd></dl>

<dl><dt><a name="AndroidActionRunner-InputPress"><strong>InputPress</strong></a>(self)</dt><dd><tt>Perform&nbsp;a&nbsp;press&nbsp;input.</tt></dd></dl>

<dl><dt><a name="AndroidActionRunner-InputRoll"><strong>InputRoll</strong></a>(self, dx, dy)</dt><dd><tt>Perform&nbsp;a&nbsp;roll&nbsp;input.&nbsp;This&nbsp;sends&nbsp;a&nbsp;simple&nbsp;zero-pressure&nbsp;move&nbsp;event.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;dx:&nbsp;Change&nbsp;in&nbsp;the&nbsp;x&nbsp;coordinate&nbsp;due&nbsp;to&nbsp;move.<br>
&nbsp;&nbsp;dy:&nbsp;Change&nbsp;in&nbsp;the&nbsp;y&nbsp;coordinate&nbsp;due&nbsp;to&nbsp;move.</tt></dd></dl>

<dl><dt><a name="AndroidActionRunner-InputSwipe"><strong>InputSwipe</strong></a>(self, left_start_coord, top_start_coord, left_end_coord, top_end_coord, duration)</dt><dd><tt>Perform&nbsp;a&nbsp;swipe&nbsp;input.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;left_start_coord:&nbsp;The&nbsp;horizontal&nbsp;starting&nbsp;coordinate&nbsp;of&nbsp;the&nbsp;gesture<br>
&nbsp;&nbsp;top_start_coord:&nbsp;The&nbsp;vertical&nbsp;starting&nbsp;coordinate&nbsp;of&nbsp;the&nbsp;gesture<br>
&nbsp;&nbsp;left_end_coord:&nbsp;The&nbsp;horizontal&nbsp;ending&nbsp;coordinate&nbsp;of&nbsp;the&nbsp;gesture<br>
&nbsp;&nbsp;top_end_coord:&nbsp;The&nbsp;vertical&nbsp;ending&nbsp;coordinate&nbsp;of&nbsp;the&nbsp;gesture<br>
&nbsp;&nbsp;duration:&nbsp;The&nbsp;length&nbsp;of&nbsp;time&nbsp;of&nbsp;the&nbsp;swipe&nbsp;in&nbsp;milliseconds</tt></dd></dl>

<dl><dt><a name="AndroidActionRunner-InputTap"><strong>InputTap</strong></a>(self, x_coord, y_coord)</dt><dd><tt>Perform&nbsp;a&nbsp;tap&nbsp;input&nbsp;at&nbsp;the&nbsp;given&nbsp;coordinates.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;x_coord:&nbsp;The&nbsp;x&nbsp;coordinate&nbsp;of&nbsp;the&nbsp;tap&nbsp;event.<br>
&nbsp;&nbsp;y_coord:&nbsp;The&nbsp;y&nbsp;coordinate&nbsp;of&nbsp;the&nbsp;tap&nbsp;event.</tt></dd></dl>

<dl><dt><a name="AndroidActionRunner-InputText"><strong>InputText</strong></a>(self, string)</dt><dd><tt>Convert&nbsp;the&nbsp;characters&nbsp;of&nbsp;the&nbsp;string&nbsp;into&nbsp;key&nbsp;events&nbsp;and&nbsp;send&nbsp;to&nbsp;device.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;string:&nbsp;The&nbsp;string&nbsp;to&nbsp;send&nbsp;to&nbsp;the&nbsp;device.</tt></dd></dl>

<dl><dt><a name="AndroidActionRunner-SmoothScrollBy"><strong>SmoothScrollBy</strong></a>(self, left_start_coord, top_start_coord, direction, scroll_distance)</dt><dd><tt>Perfrom&nbsp;gesture&nbsp;to&nbsp;scroll&nbsp;down&nbsp;on&nbsp;the&nbsp;android&nbsp;device.</tt></dd></dl>

<dl><dt><a name="AndroidActionRunner-TurnScreenOff"><strong>TurnScreenOff</strong></a>(self)</dt><dd><tt>If&nbsp;device&nbsp;screen&nbsp;is&nbsp;on,&nbsp;turn&nbsp;screen&nbsp;off.<br>
If&nbsp;the&nbsp;screen&nbsp;is&nbsp;already&nbsp;off,&nbsp;log&nbsp;a&nbsp;warning&nbsp;and&nbsp;return&nbsp;immediately.<br>
&nbsp;<br>
Raises:<br>
&nbsp;&nbsp;Timeout:&nbsp;If&nbsp;the&nbsp;screen&nbsp;is&nbsp;on&nbsp;and&nbsp;device&nbsp;fails&nbsp;to&nbsp;turn&nbsp;screen&nbsp;off.</tt></dd></dl>

<dl><dt><a name="AndroidActionRunner-TurnScreenOn"><strong>TurnScreenOn</strong></a>(self)</dt><dd><tt>If&nbsp;device&nbsp;screen&nbsp;is&nbsp;off,&nbsp;turn&nbsp;screen&nbsp;on.<br>
If&nbsp;the&nbsp;screen&nbsp;is&nbsp;already&nbsp;on,&nbsp;log&nbsp;a&nbsp;warning&nbsp;and&nbsp;return&nbsp;immediately.<br>
&nbsp;<br>
Raises:<br>
&nbsp;&nbsp;Timeout:&nbsp;If&nbsp;the&nbsp;screen&nbsp;is&nbsp;off&nbsp;and&nbsp;device&nbsp;fails&nbsp;to&nbsp;turn&nbsp;screen&nbsp;on.</tt></dd></dl>

<dl><dt><a name="AndroidActionRunner-UnlockScreen"><strong>UnlockScreen</strong></a>(self)</dt><dd><tt>If&nbsp;device&nbsp;screen&nbsp;is&nbsp;locked,&nbsp;unlocks&nbsp;it.<br>
If&nbsp;the&nbsp;device&nbsp;is&nbsp;not&nbsp;locked,&nbsp;log&nbsp;a&nbsp;warning&nbsp;and&nbsp;return&nbsp;immediately.<br>
&nbsp;<br>
Raises:<br>
&nbsp;&nbsp;Timeout:&nbsp;If&nbsp;device&nbsp;fails&nbsp;to&nbsp;unlock&nbsp;screen.</tt></dd></dl>

<dl><dt><a name="AndroidActionRunner-Wait"><strong>Wait</strong></a>(self, seconds)</dt><dd><tt>Wait&nbsp;for&nbsp;the&nbsp;number&nbsp;of&nbsp;seconds&nbsp;specified.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;seconds:&nbsp;The&nbsp;number&nbsp;of&nbsp;seconds&nbsp;to&nbsp;wait.</tt></dd></dl>

<dl><dt><a name="AndroidActionRunner-__init__"><strong>__init__</strong></a>(self, platform_backend)</dt></dl>

<hr>
Data descriptors defined here:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
</td></tr></table></td></tr></table>
</body></html>